package com.ethink.system.service;

import com.ethink.system.api.info.SystemTodoInfo;
import com.ethink.system.api.request.SystemTodoAddRequest;
import com.ethink.system.api.request.SystemTodoListPendingRequest;
import com.ethink.system.api.request.SystemTodoUpdateRequest;
import com.ethink.system.api.response.SystemTodoAddResponse;

import java.util.List;

/**
 * 代办事项表 Service接口
 *
 * @author default
 * @date 2022-12-09
 */
public interface SystemTodoService {

    /**
     * 待处理列表查询
     *
     * @param request
     * @return
     */
    List<SystemTodoInfo> listSystemTodoPending(SystemTodoListPendingRequest request);

    /**
     * 新增
     *
     * @param request
     * @return
     */
    SystemTodoAddResponse addSystemTodo(SystemTodoAddRequest request);

    /**
     * 修改
     *
     * @param request
     */
    void updateSystemTodo(SystemTodoUpdateRequest request);

    /**
     * 完成
     *
     * @param systemTodoId
     */
    void doneSystemTodo(Long systemTodoId);

    /**
     * 完成
     *
     * @param dataId
     */
    void doneSystemTodoByDataId(Integer todoType, String dataId);

    /**
     * 删除
     *
     * @param systemTodoId
     */
    void deleteSystemTodo(Long systemTodoId);

    /**
     * 根据数据单号删除
     *
     * @param systemTodoDataId
     */
    void deleteSystemTodoByDataId(String systemTodoDataId);

}